In [15]:
import cv2
import numpy as np
import tensorflow as tf
import matplotlib.pyplot as plt
import matplotlib as mpl

from tensorflow.keras.layers import Input

from src.yolo3.model import *
from src.yolo3.detect import *

from src.utils.image import *
from src.utils.datagen import *
from src.utils.fixes import *

fix_tf_gpu()
In [16]:
# Importing all necessary libraries
import cv2
import os

# Read the video from specified path
vid = cv2.VideoCapture(r"C:\Users\Niharika\Downloads\emotions.mp4")

try:

    # creating a folder named data
    if not os.path.exists('data'):
        os.makedirs('data')

# if not created then raise error
except OSError:
    print('Error: Creating directory of data')

# frame
currentframe = 0

while (True):

    # reading from frame
    success, frame = vid.read()

    if success:
        # continue creating images until video remains
        name = './data/frame' + str(currentframe) + '.jpg'
        print('Creating...' + name)

        # writing the extracted images
        cv2.imwrite(name, frame)

        # increasing counter so that it will
        # show how many frames are created
        currentframe += 1
    else:
        break

# Release all space and windows once done
vid.release()
cv2.destroyAllWindows()
Creating..../data/frame0.jpg
Creating..../data/frame1.jpg
Creating..../data/frame2.jpg
Creating..../data/frame3.jpg
Creating..../data/frame4.jpg
Creating..../data/frame5.jpg
Creating..../data/frame6.jpg
Creating..../data/frame7.jpg
Creating..../data/frame8.jpg
Creating..../data/frame9.jpg
Creating..../data/frame10.jpg
Creating..../data/frame11.jpg
Creating..../data/frame12.jpg
Creating..../data/frame13.jpg
Creating..../data/frame14.jpg
Creating..../data/frame15.jpg
Creating..../data/frame16.jpg
Creating..../data/frame17.jpg
Creating..../data/frame18.jpg
Creating..../data/frame19.jpg
Creating..../data/frame20.jpg
Creating..../data/frame21.jpg
Creating..../data/frame22.jpg
Creating..../data/frame23.jpg
Creating..../data/frame24.jpg
Creating..../data/frame25.jpg
Creating..../data/frame26.jpg
Creating..../data/frame27.jpg
Creating..../data/frame28.jpg
Creating..../data/frame29.jpg
Creating..../data/frame30.jpg
Creating..../data/frame31.jpg
Creating..../data/frame32.jpg
Creating..../data/frame33.jpg
Creating..../data/frame34.jpg
Creating..../data/frame35.jpg
Creating..../data/frame36.jpg
Creating..../data/frame37.jpg
Creating..../data/frame38.jpg
Creating..../data/frame39.jpg
Creating..../data/frame40.jpg
Creating..../data/frame41.jpg
Creating..../data/frame42.jpg
Creating..../data/frame43.jpg
Creating..../data/frame44.jpg
Creating..../data/frame45.jpg
Creating..../data/frame46.jpg
Creating..../data/frame47.jpg
Creating..../data/frame48.jpg
Creating..../data/frame49.jpg
Creating..../data/frame50.jpg
Creating..../data/frame51.jpg
Creating..../data/frame52.jpg
Creating..../data/frame53.jpg
Creating..../data/frame54.jpg
Creating..../data/frame55.jpg
Creating..../data/frame56.jpg
Creating..../data/frame57.jpg
Creating..../data/frame58.jpg
Creating..../data/frame59.jpg
Creating..../data/frame60.jpg
Creating..../data/frame61.jpg
Creating..../data/frame62.jpg
Creating..../data/frame63.jpg
Creating..../data/frame64.jpg
Creating..../data/frame65.jpg
Creating..../data/frame66.jpg
Creating..../data/frame67.jpg
Creating..../data/frame68.jpg
Creating..../data/frame69.jpg
Creating..../data/frame70.jpg
Creating..../data/frame71.jpg
Creating..../data/frame72.jpg
Creating..../data/frame73.jpg
Creating..../data/frame74.jpg
Creating..../data/frame75.jpg
Creating..../data/frame76.jpg
Creating..../data/frame77.jpg
Creating..../data/frame78.jpg
Creating..../data/frame79.jpg
Creating..../data/frame80.jpg
Creating..../data/frame81.jpg
Creating..../data/frame82.jpg
Creating..../data/frame83.jpg
Creating..../data/frame84.jpg
Creating..../data/frame85.jpg
Creating..../data/frame86.jpg
Creating..../data/frame87.jpg
Creating..../data/frame88.jpg
Creating..../data/frame89.jpg
Creating..../data/frame90.jpg
Creating..../data/frame91.jpg
Creating..../data/frame92.jpg
Creating..../data/frame93.jpg
Creating..../data/frame94.jpg
Creating..../data/frame95.jpg
Creating..../data/frame96.jpg
Creating..../data/frame97.jpg
Creating..../data/frame98.jpg
Creating..../data/frame99.jpg
Creating..../data/frame100.jpg
Creating..../data/frame101.jpg
Creating..../data/frame102.jpg
Creating..../data/frame103.jpg
Creating..../data/frame104.jpg
Creating..../data/frame105.jpg
Creating..../data/frame106.jpg
Creating..../data/frame107.jpg
Creating..../data/frame108.jpg
Creating..../data/frame109.jpg
Creating..../data/frame110.jpg
Creating..../data/frame111.jpg
Creating..../data/frame112.jpg
Creating..../data/frame113.jpg
Creating..../data/frame114.jpg
Creating..../data/frame115.jpg
Creating..../data/frame116.jpg
Creating..../data/frame117.jpg
Creating..../data/frame118.jpg
Creating..../data/frame119.jpg
Creating..../data/frame120.jpg
Creating..../data/frame121.jpg
Creating..../data/frame122.jpg
Creating..../data/frame123.jpg
Creating..../data/frame124.jpg
Creating..../data/frame125.jpg
Creating..../data/frame126.jpg
Creating..../data/frame127.jpg
Creating..../data/frame128.jpg
Creating..../data/frame129.jpg
Creating..../data/frame130.jpg
Creating..../data/frame131.jpg
Creating..../data/frame132.jpg
Creating..../data/frame133.jpg
Creating..../data/frame134.jpg
Creating..../data/frame135.jpg
Creating..../data/frame136.jpg
Creating..../data/frame137.jpg
Creating..../data/frame138.jpg
Creating..../data/frame139.jpg
Creating..../data/frame140.jpg
Creating..../data/frame141.jpg
Creating..../data/frame142.jpg
Creating..../data/frame143.jpg
Creating..../data/frame144.jpg
Creating..../data/frame145.jpg
Creating..../data/frame146.jpg
Creating..../data/frame147.jpg
Creating..../data/frame148.jpg
Creating..../data/frame149.jpg
Creating..../data/frame150.jpg
Creating..../data/frame151.jpg
Creating..../data/frame152.jpg
Creating..../data/frame153.jpg
Creating..../data/frame154.jpg
Creating..../data/frame155.jpg
Creating..../data/frame156.jpg
Creating..../data/frame157.jpg
Creating..../data/frame158.jpg
Creating..../data/frame159.jpg
Creating..../data/frame160.jpg
Creating..../data/frame161.jpg
Creating..../data/frame162.jpg
Creating..../data/frame163.jpg
Creating..../data/frame164.jpg
Creating..../data/frame165.jpg
Creating..../data/frame166.jpg
Creating..../data/frame167.jpg
Creating..../data/frame168.jpg
Creating..../data/frame169.jpg
Creating..../data/frame170.jpg
Creating..../data/frame171.jpg
Creating..../data/frame172.jpg
Creating..../data/frame173.jpg
Creating..../data/frame174.jpg
Creating..../data/frame175.jpg
Creating..../data/frame176.jpg
Creating..../data/frame177.jpg
Creating..../data/frame178.jpg
Creating..../data/frame179.jpg
Creating..../data/frame180.jpg
Creating..../data/frame181.jpg
Creating..../data/frame182.jpg
Creating..../data/frame183.jpg
Creating..../data/frame184.jpg
Creating..../data/frame185.jpg
Creating..../data/frame186.jpg
Creating..../data/frame187.jpg
Creating..../data/frame188.jpg
Creating..../data/frame189.jpg
Creating..../data/frame190.jpg
Creating..../data/frame191.jpg
Creating..../data/frame192.jpg
Creating..../data/frame193.jpg
Creating..../data/frame194.jpg
Creating..../data/frame195.jpg
Creating..../data/frame196.jpg
Creating..../data/frame197.jpg
Creating..../data/frame198.jpg
Creating..../data/frame199.jpg
Creating..../data/frame200.jpg
Creating..../data/frame201.jpg
Creating..../data/frame202.jpg
Creating..../data/frame203.jpg
Creating..../data/frame204.jpg
Creating..../data/frame205.jpg
Creating..../data/frame206.jpg
Creating..../data/frame207.jpg
Creating..../data/frame208.jpg
Creating..../data/frame209.jpg
Creating..../data/frame210.jpg
Creating..../data/frame211.jpg
Creating..../data/frame212.jpg
Creating..../data/frame213.jpg
Creating..../data/frame214.jpg
Creating..../data/frame215.jpg
Creating..../data/frame216.jpg
Creating..../data/frame217.jpg
Creating..../data/frame218.jpg
Creating..../data/frame219.jpg
Creating..../data/frame220.jpg
Creating..../data/frame221.jpg
Creating..../data/frame222.jpg
Creating..../data/frame223.jpg
Creating..../data/frame224.jpg
Creating..../data/frame225.jpg
Creating..../data/frame226.jpg
Creating..../data/frame227.jpg
Creating..../data/frame228.jpg
Creating..../data/frame229.jpg
Creating..../data/frame230.jpg
Creating..../data/frame231.jpg
Creating..../data/frame232.jpg
Creating..../data/frame233.jpg
Creating..../data/frame234.jpg
Creating..../data/frame235.jpg
Creating..../data/frame236.jpg
Creating..../data/frame237.jpg
Creating..../data/frame238.jpg
Creating..../data/frame239.jpg
Creating..../data/frame240.jpg
Creating..../data/frame241.jpg
Creating..../data/frame242.jpg
Creating..../data/frame243.jpg
Creating..../data/frame244.jpg
Creating..../data/frame245.jpg
Creating..../data/frame246.jpg
Creating..../data/frame247.jpg
Creating..../data/frame248.jpg
Creating..../data/frame249.jpg
Creating..../data/frame250.jpg
Creating..../data/frame251.jpg
Creating..../data/frame252.jpg
Creating..../data/frame253.jpg
Creating..../data/frame254.jpg
Creating..../data/frame255.jpg
Creating..../data/frame256.jpg
Creating..../data/frame257.jpg
Creating..../data/frame258.jpg
Creating..../data/frame259.jpg
Creating..../data/frame260.jpg
Creating..../data/frame261.jpg
Creating..../data/frame262.jpg
Creating..../data/frame263.jpg
Creating..../data/frame264.jpg
Creating..../data/frame265.jpg
Creating..../data/frame266.jpg
Creating..../data/frame267.jpg
Creating..../data/frame268.jpg
Creating..../data/frame269.jpg
Creating..../data/frame270.jpg
Creating..../data/frame271.jpg
Creating..../data/frame272.jpg
Creating..../data/frame273.jpg
Creating..../data/frame274.jpg
Creating..../data/frame275.jpg
Creating..../data/frame276.jpg
Creating..../data/frame277.jpg
Creating..../data/frame278.jpg
Creating..../data/frame279.jpg
Creating..../data/frame280.jpg
Creating..../data/frame281.jpg
Creating..../data/frame282.jpg
Creating..../data/frame283.jpg
Creating..../data/frame284.jpg
Creating..../data/frame285.jpg
Creating..../data/frame286.jpg
Creating..../data/frame287.jpg
Creating..../data/frame288.jpg
Creating..../data/frame289.jpg
Creating..../data/frame290.jpg
Creating..../data/frame291.jpg
Creating..../data/frame292.jpg
Creating..../data/frame293.jpg
Creating..../data/frame294.jpg
Creating..../data/frame295.jpg
Creating..../data/frame296.jpg
Creating..../data/frame297.jpg
Creating..../data/frame298.jpg
Creating..../data/frame299.jpg
Creating..../data/frame300.jpg
Creating..../data/frame301.jpg
Creating..../data/frame302.jpg
Creating..../data/frame303.jpg
Creating..../data/frame304.jpg
Creating..../data/frame305.jpg
Creating..../data/frame306.jpg
Creating..../data/frame307.jpg
Creating..../data/frame308.jpg
Creating..../data/frame309.jpg
Creating..../data/frame310.jpg
Creating..../data/frame311.jpg
Creating..../data/frame312.jpg
Creating..../data/frame313.jpg
Creating..../data/frame314.jpg
Creating..../data/frame315.jpg
Creating..../data/frame316.jpg
Creating..../data/frame317.jpg
Creating..../data/frame318.jpg
Creating..../data/frame319.jpg
Creating..../data/frame320.jpg
Creating..../data/frame321.jpg
Creating..../data/frame322.jpg
Creating..../data/frame323.jpg
Creating..../data/frame324.jpg
Creating..../data/frame325.jpg
Creating..../data/frame326.jpg
Creating..../data/frame327.jpg
Creating..../data/frame328.jpg
Creating..../data/frame329.jpg
Creating..../data/frame330.jpg
Creating..../data/frame331.jpg
Creating..../data/frame332.jpg
Creating..../data/frame333.jpg
Creating..../data/frame334.jpg
Creating..../data/frame335.jpg
Creating..../data/frame336.jpg
Creating..../data/frame337.jpg
Creating..../data/frame338.jpg
Creating..../data/frame339.jpg
Creating..../data/frame340.jpg
Creating..../data/frame341.jpg
Creating..../data/frame342.jpg
Creating..../data/frame343.jpg
Creating..../data/frame344.jpg
Creating..../data/frame345.jpg
Creating..../data/frame346.jpg
Creating..../data/frame347.jpg
Creating..../data/frame348.jpg
Creating..../data/frame349.jpg
Creating..../data/frame350.jpg
Creating..../data/frame351.jpg
Creating..../data/frame352.jpg
Creating..../data/frame353.jpg
Creating..../data/frame354.jpg
Creating..../data/frame355.jpg
Creating..../data/frame356.jpg
Creating..../data/frame357.jpg
Creating..../data/frame358.jpg
Creating..../data/frame359.jpg
Creating..../data/frame360.jpg
Creating..../data/frame361.jpg
Creating..../data/frame362.jpg
Creating..../data/frame363.jpg
Creating..../data/frame364.jpg
Creating..../data/frame365.jpg
Creating..../data/frame366.jpg
Creating..../data/frame367.jpg
Creating..../data/frame368.jpg
Creating..../data/frame369.jpg
Creating..../data/frame370.jpg
Creating..../data/frame371.jpg
Creating..../data/frame372.jpg
Creating..../data/frame373.jpg
Creating..../data/frame374.jpg
Creating..../data/frame375.jpg
Creating..../data/frame376.jpg
Creating..../data/frame377.jpg
Creating..../data/frame378.jpg
Creating..../data/frame379.jpg
Creating..../data/frame380.jpg
Creating..../data/frame381.jpg
Creating..../data/frame382.jpg
Creating..../data/frame383.jpg
Creating..../data/frame384.jpg
Creating..../data/frame385.jpg
Creating..../data/frame386.jpg
Creating..../data/frame387.jpg
Creating..../data/frame388.jpg
Creating..../data/frame389.jpg
Creating..../data/frame390.jpg
Creating..../data/frame391.jpg
Creating..../data/frame392.jpg
Creating..../data/frame393.jpg
Creating..../data/frame394.jpg
Creating..../data/frame395.jpg
Creating..../data/frame396.jpg
Creating..../data/frame397.jpg
Creating..../data/frame398.jpg
Creating..../data/frame399.jpg
Creating..../data/frame400.jpg
Creating..../data/frame401.jpg
Creating..../data/frame402.jpg
Creating..../data/frame403.jpg
Creating..../data/frame404.jpg
Creating..../data/frame405.jpg
Creating..../data/frame406.jpg
Creating..../data/frame407.jpg
Creating..../data/frame408.jpg
Creating..../data/frame409.jpg
Creating..../data/frame410.jpg
Creating..../data/frame411.jpg
Creating..../data/frame412.jpg
Creating..../data/frame413.jpg
Creating..../data/frame414.jpg
Creating..../data/frame415.jpg
Creating..../data/frame416.jpg
Creating..../data/frame417.jpg
Creating..../data/frame418.jpg
Creating..../data/frame419.jpg
Creating..../data/frame420.jpg
Creating..../data/frame421.jpg
Creating..../data/frame422.jpg
Creating..../data/frame423.jpg
Creating..../data/frame424.jpg
Creating..../data/frame425.jpg
Creating..../data/frame426.jpg
Creating..../data/frame427.jpg
Creating..../data/frame428.jpg
Creating..../data/frame429.jpg
Creating..../data/frame430.jpg
Creating..../data/frame431.jpg
Creating..../data/frame432.jpg
Creating..../data/frame433.jpg
Creating..../data/frame434.jpg
Creating..../data/frame435.jpg
Creating..../data/frame436.jpg
Creating..../data/frame437.jpg
Creating..../data/frame438.jpg
Creating..../data/frame439.jpg
Creating..../data/frame440.jpg
Creating..../data/frame441.jpg
Creating..../data/frame442.jpg
Creating..../data/frame443.jpg
Creating..../data/frame444.jpg
Creating..../data/frame445.jpg
Creating..../data/frame446.jpg
Creating..../data/frame447.jpg
Creating..../data/frame448.jpg
Creating..../data/frame449.jpg
Creating..../data/frame450.jpg
Creating..../data/frame451.jpg
Creating..../data/frame452.jpg
Creating..../data/frame453.jpg
Creating..../data/frame454.jpg
Creating..../data/frame455.jpg
Creating..../data/frame456.jpg
Creating..../data/frame457.jpg
Creating..../data/frame458.jpg
Creating..../data/frame459.jpg
Creating..../data/frame460.jpg
Creating..../data/frame461.jpg
Creating..../data/frame462.jpg
Creating..../data/frame463.jpg
Creating..../data/frame464.jpg
Creating..../data/frame465.jpg
Creating..../data/frame466.jpg
Creating..../data/frame467.jpg
Creating..../data/frame468.jpg
Creating..../data/frame469.jpg
Creating..../data/frame470.jpg
Creating..../data/frame471.jpg
Creating..../data/frame472.jpg
Creating..../data/frame473.jpg
Creating..../data/frame474.jpg
Creating..../data/frame475.jpg
Creating..../data/frame476.jpg
Creating..../data/frame477.jpg
Creating..../data/frame478.jpg
Creating..../data/frame479.jpg
Creating..../data/frame480.jpg
Creating..../data/frame481.jpg
Creating..../data/frame482.jpg
Creating..../data/frame483.jpg
Creating..../data/frame484.jpg
Creating..../data/frame485.jpg
Creating..../data/frame486.jpg
Creating..../data/frame487.jpg
Creating..../data/frame488.jpg
Creating..../data/frame489.jpg
Creating..../data/frame490.jpg
Creating..../data/frame491.jpg
Creating..../data/frame492.jpg
Creating..../data/frame493.jpg
Creating..../data/frame494.jpg
Creating..../data/frame495.jpg
Creating..../data/frame496.jpg
Creating..../data/frame497.jpg
Creating..../data/frame498.jpg
Creating..../data/frame499.jpg
Creating..../data/frame500.jpg
Creating..../data/frame501.jpg
Creating..../data/frame502.jpg
Creating..../data/frame503.jpg
Creating..../data/frame504.jpg
Creating..../data/frame505.jpg
Creating..../data/frame506.jpg
Creating..../data/frame507.jpg
Creating..../data/frame508.jpg
Creating..../data/frame509.jpg
Creating..../data/frame510.jpg
Creating..../data/frame511.jpg
Creating..../data/frame512.jpg
Creating..../data/frame513.jpg
Creating..../data/frame514.jpg
Creating..../data/frame515.jpg
Creating..../data/frame516.jpg
Creating..../data/frame517.jpg
Creating..../data/frame518.jpg
Creating..../data/frame519.jpg
Creating..../data/frame520.jpg
Creating..../data/frame521.jpg
Creating..../data/frame522.jpg
Creating..../data/frame523.jpg
Creating..../data/frame524.jpg
Creating..../data/frame525.jpg
Creating..../data/frame526.jpg
Creating..../data/frame527.jpg
Creating..../data/frame528.jpg
Creating..../data/frame529.jpg
Creating..../data/frame530.jpg
Creating..../data/frame531.jpg
Creating..../data/frame532.jpg
Creating..../data/frame533.jpg
Creating..../data/frame534.jpg
Creating..../data/frame535.jpg
Creating..../data/frame536.jpg
Creating..../data/frame537.jpg
Creating..../data/frame538.jpg
Creating..../data/frame539.jpg
Creating..../data/frame540.jpg
Creating..../data/frame541.jpg
Creating..../data/frame542.jpg
Creating..../data/frame543.jpg
Creating..../data/frame544.jpg
Creating..../data/frame545.jpg
Creating..../data/frame546.jpg
Creating..../data/frame547.jpg
Creating..../data/frame548.jpg
Creating..../data/frame549.jpg
Creating..../data/frame550.jpg
Creating..../data/frame551.jpg
Creating..../data/frame552.jpg
Creating..../data/frame553.jpg
Creating..../data/frame554.jpg
Creating..../data/frame555.jpg
Creating..../data/frame556.jpg
Creating..../data/frame557.jpg
Creating..../data/frame558.jpg
Creating..../data/frame559.jpg
Creating..../data/frame560.jpg
Creating..../data/frame561.jpg
Creating..../data/frame562.jpg
Creating..../data/frame563.jpg
Creating..../data/frame564.jpg
Creating..../data/frame565.jpg
Creating..../data/frame566.jpg
Creating..../data/frame567.jpg
Creating..../data/frame568.jpg
Creating..../data/frame569.jpg
Creating..../data/frame570.jpg
Creating..../data/frame571.jpg
Creating..../data/frame572.jpg
Creating..../data/frame573.jpg
Creating..../data/frame574.jpg
Creating..../data/frame575.jpg
Creating..../data/frame576.jpg
Creating..../data/frame577.jpg
Creating..../data/frame578.jpg
Creating..../data/frame579.jpg
Creating..../data/frame580.jpg
Creating..../data/frame581.jpg
Creating..../data/frame582.jpg
Creating..../data/frame583.jpg
Creating..../data/frame584.jpg
Creating..../data/frame585.jpg
Creating..../data/frame586.jpg
Creating..../data/frame587.jpg
Creating..../data/frame588.jpg
Creating..../data/frame589.jpg
Creating..../data/frame590.jpg
Creating..../data/frame591.jpg
Creating..../data/frame592.jpg
Creating..../data/frame593.jpg
Creating..../data/frame594.jpg
Creating..../data/frame595.jpg
Creating..../data/frame596.jpg
Creating..../data/frame597.jpg
Creating..../data/frame598.jpg
Creating..../data/frame599.jpg
Creating..../data/frame600.jpg
Creating..../data/frame601.jpg
Creating..../data/frame602.jpg
Creating..../data/frame603.jpg
Creating..../data/frame604.jpg
Creating..../data/frame605.jpg
Creating..../data/frame606.jpg
Creating..../data/frame607.jpg
Creating..../data/frame608.jpg
Creating..../data/frame609.jpg
Creating..../data/frame610.jpg
Creating..../data/frame611.jpg
Creating..../data/frame612.jpg
Creating..../data/frame613.jpg
Creating..../data/frame614.jpg
Creating..../data/frame615.jpg
Creating..../data/frame616.jpg
Creating..../data/frame617.jpg
Creating..../data/frame618.jpg
Creating..../data/frame619.jpg
Creating..../data/frame620.jpg
Creating..../data/frame621.jpg
Creating..../data/frame622.jpg
Creating..../data/frame623.jpg
Creating..../data/frame624.jpg
Creating..../data/frame625.jpg
Creating..../data/frame626.jpg
Creating..../data/frame627.jpg
Creating..../data/frame628.jpg
Creating..../data/frame629.jpg
Creating..../data/frame630.jpg
Creating..../data/frame631.jpg
Creating..../data/frame632.jpg
Creating..../data/frame633.jpg
Creating..../data/frame634.jpg
Creating..../data/frame635.jpg
Creating..../data/frame636.jpg
Creating..../data/frame637.jpg
Creating..../data/frame638.jpg
Creating..../data/frame639.jpg
Creating..../data/frame640.jpg
Creating..../data/frame641.jpg
Creating..../data/frame642.jpg
Creating..../data/frame643.jpg
Creating..../data/frame644.jpg
Creating..../data/frame645.jpg
Creating..../data/frame646.jpg
Creating..../data/frame647.jpg
Creating..../data/frame648.jpg
Creating..../data/frame649.jpg
Creating..../data/frame650.jpg
Creating..../data/frame651.jpg
Creating..../data/frame652.jpg
Creating..../data/frame653.jpg
Creating..../data/frame654.jpg
Creating..../data/frame655.jpg
Creating..../data/frame656.jpg
Creating..../data/frame657.jpg
Creating..../data/frame658.jpg
Creating..../data/frame659.jpg
Creating..../data/frame660.jpg
Creating..../data/frame661.jpg
Creating..../data/frame662.jpg
Creating..../data/frame663.jpg
Creating..../data/frame664.jpg
Creating..../data/frame665.jpg
Creating..../data/frame666.jpg
Creating..../data/frame667.jpg
Creating..../data/frame668.jpg
Creating..../data/frame669.jpg
Creating..../data/frame670.jpg
Creating..../data/frame671.jpg
Creating..../data/frame672.jpg
Creating..../data/frame673.jpg
Creating..../data/frame674.jpg
Creating..../data/frame675.jpg
Creating..../data/frame676.jpg
Creating..../data/frame677.jpg
Creating..../data/frame678.jpg
Creating..../data/frame679.jpg
Creating..../data/frame680.jpg
Creating..../data/frame681.jpg
Creating..../data/frame682.jpg
Creating..../data/frame683.jpg
Creating..../data/frame684.jpg
Creating..../data/frame685.jpg
Creating..../data/frame686.jpg
Creating..../data/frame687.jpg
Creating..../data/frame688.jpg
Creating..../data/frame689.jpg
Creating..../data/frame690.jpg
Creating..../data/frame691.jpg
Creating..../data/frame692.jpg
Creating..../data/frame693.jpg
Creating..../data/frame694.jpg
Creating..../data/frame695.jpg
Creating..../data/frame696.jpg
Creating..../data/frame697.jpg
Creating..../data/frame698.jpg
Creating..../data/frame699.jpg
Creating..../data/frame700.jpg
Creating..../data/frame701.jpg
Creating..../data/frame702.jpg
Creating..../data/frame703.jpg
Creating..../data/frame704.jpg
Creating..../data/frame705.jpg
Creating..../data/frame706.jpg
Creating..../data/frame707.jpg
Creating..../data/frame708.jpg
Creating..../data/frame709.jpg
Creating..../data/frame710.jpg
Creating..../data/frame711.jpg
Creating..../data/frame712.jpg
Creating..../data/frame713.jpg
Creating..../data/frame714.jpg
Creating..../data/frame715.jpg
Creating..../data/frame716.jpg
Creating..../data/frame717.jpg
Creating..../data/frame718.jpg
Creating..../data/frame719.jpg
In [ ]:
 
In [11]:
def prepare_model(approach):
    '''
    Prepare the YOLO model
    '''
    global input_shape, class_names, anchor_boxes, num_classes, num_anchors, model

    # shape (height, width) of the imput image
    input_shape = (416, 416)

    # class names
    if approach == 1:
        class_names  = ['W']
        
        
    elif approach == 2:
        class_names = ['H', 'V', 'W']
        
        
    elif approach == 3:
        class_names  = ['W','WH','WV','WHV']
        
        
    else:
        raise NotImplementedError('Approach should be 1, 2, or 3')

    # anchor boxes
    if approach == 1:
        anchor_boxes = np.array(
            [
            np.array([[ 76,  59], [ 84, 136], [188, 225]]) /32, # output-1 anchor boxes
            np.array([[ 25,  15], [ 46,  29], [ 27,  56]]) /16, # output-2 anchor boxes
            np.array([[ 5,    3], [ 10,   8], [ 12,  26]]) /8   # output-3 anchor boxes
            ],
            dtype='float64'
        )
    else:
        anchor_boxes = np.array(
            [
            np.array([[ 73, 158], [128, 209], [224, 246]]) /32, # output-1 anchor boxes
            np.array([[ 32,  50], [ 40, 104], [ 76,  73]]) /16, # output-2 anchor boxes
            np.array([[ 6,   11], [ 11,  23], [ 19,  36]]) /8   # output-3 anchor boxes
            ],
            dtype='float64'
        )

    # number of classes and number of anchors
    num_classes = len(class_names)
    num_anchors = anchor_boxes.shape[0] * anchor_boxes.shape[1]

    # input and output
    input_tensor = Input( shape=(input_shape[0], input_shape[1], 3) ) # input
    num_out_filters = ( num_anchors//3 ) * ( 5 + num_classes )        # output

    # build the model
    model = yolo_body(input_tensor, num_out_filters)

    # load weights
    weight_path = r'C:\Users\Niharika\Desktop\IVA\weights\pictor-ppe-v302-a2-yolo-v3-weights.h5'
    model.load_weights( weight_path )
In [4]:
def get_detection(img):
    # save a copy of the img
    act_img = img.copy()

    # shape of the image
    ih, iw = act_img.shape[:2]

    # preprocess the image
    img = letterbox_image(img, input_shape)
    img = np.expand_dims(img, 0)
    image_data = np.array(img) / 255.

    # raw prediction from yolo model
    prediction = model.predict(image_data)

    # process the raw prediction to get the bounding boxes
    boxes = detection(
        prediction,
        anchor_boxes,
        num_classes,
        image_shape = (ih, iw),
        input_shape = (416,416),
        max_boxes = 10,
        score_threshold=0.3,
        iou_threshold=0.45,
        classes_can_overlap=False)

    # convert tensor to numpy
    boxes = boxes[0].numpy()

    # draw the detection on the actual image
    return draw_detection(act_img, boxes, class_names)
In [5]:
def plt_imshow(img):
    plt.figure(figsize=(5, 5))
    plt.imshow(img)
    plt.axis('off')

Approach-1

Model detects only workers.

In [6]:
# prepare the model
prepare_model(approach=1)
In [7]:
for i in range(11):
    # read the image
    img = cv2.imread( f'C:/Users/Niharika/Desktop/IVA/extras/sample-images/{i}.jpg' )
    # resize
    img = letterbox_image(img, input_shape)

    # get the detection on the image
    img = get_detection(img)

    # show the image
    plt_imshow(img[:, :, ::-1])

Approach-2

Model detects worker, hat, and vest (three object classes) individually.

In [9]:
# prepare the model
prepare_model(approach=2)
In [10]:
for i in range(11):
    # read the image
    img = cv2.imread( f'C:/Users/Niharika/Desktop/IVA/extras/sample-images/{i}.jpg' )
        

    # resize
    img = letterbox_image(img, input_shape)

    # get the detection on the image
    img = get_detection(img)

    # show the image
    plt_imshow(img[:, :, ::-1])

Approach-3

Model localizes workers in the input image and directly classifies each detected worker as W, WH, WV, or WHV.

In [12]:
# prepare the model
prepare_model(approach=3)
In [13]:
for i in range(11):
    # read the image
    img = cv2.imread( f'C:/Users/Niharika/Desktop/IVA/extras/sample-images/{i}.jpg' )

    # resize
    img = letterbox_image(img, input_shape)

    # get the detection on the image
    img = get_detection(img)

    # show the image
    plt_imshow(img[:, :, ::-1])

Random Input

In [14]:
# prepare the model
prepare_model(approach=3)

# read the image
img = cv2.imread( r'C:\Users\Niharika\Desktop\IVA\extras\sample-images\11.jpg' )

# resize
img = letterbox_image(img, input_shape)

# get the detection on the image
img = get_detection(img)

# show the image
plt_imshow(img[:, :, ::-1])